home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / gnu / gnushogi.lha / gnushogi-1.1 / src / pattern.h < prev    next >
C/C++ Source or Header  |  1993-04-22  |  2KB  |  86 lines

  1. /* #define TEST_PATTERN  */
  2. /* #define DEBUG_PATTERN */
  3.  
  4.  
  5. #define MAX_PATTERN 20 /* maximum number of pieces in pattern */
  6. #define MAX_NEXT 6     /* maximum number of links */
  7. #define MAX_NAME 20    /* maximum length of opening name */
  8.  
  9.  
  10. typedef
  11.   struct PatternField_rec {
  12.     small_short side, piece, square;
  13.   } PatternField;
  14.  
  15. typedef
  16.   struct Pattern_rec {
  17.     short n;
  18.     PatternField field[MAX_PATTERN];
  19.   } PatternFields;
  20.  
  21. typedef
  22.   struct PatternSequence_rec { 
  23.     small_short n;
  24.     small_short next[MAX_NEXT];
  25.     small_short distance[2];
  26.     small_short reachedGameCnt[2];
  27.     small_short visited;
  28.     PatternFields patternfields;
  29.     struct PatternSequence_rec *next_pattern;
  30.   } PatternSequence;
  31.                
  32.  
  33. typedef
  34.   struct OpeningPattern_rec {
  35.     char name[MAX_NAME];
  36.     short n;
  37.     PatternSequence *sequence;
  38.     struct OpeningPattern_rec *next;
  39.   } OpeningPattern;
  40.  
  41.  
  42. extern OpeningPattern *Patterns;
  43.     
  44.  
  45. extern
  46.   short
  47.   string_to_board_color
  48.     (char *s);
  49.  
  50. extern
  51.   short
  52.   string_to_patternfields
  53.     (char *s, PatternFields *pattern);
  54.  
  55. extern 
  56.   short
  57.   piece_to_pattern_distance 
  58.     (short side, short piece, short pside, PatternFields *pattern);
  59.  
  60. extern
  61.   short
  62.   pattern_distance (short pside, PatternFields *pattern);
  63.  
  64. extern
  65.   short
  66.   board_to_pattern_distance 
  67.     (short pside, OpeningPattern *opattern, short pmplty, short GameCnt);
  68.  
  69. extern
  70.   OpeningPattern *locate_opening_pattern(short pside, char *s, short GameCnt);
  71.  
  72. extern
  73.   void
  74.   DisplayPattern (PatternFields *pattern);
  75.  
  76. extern
  77.   void
  78.   GetOpeningPatterns ();
  79.  
  80. extern
  81.   void
  82.   ShowOpeningPatterns ();
  83.  
  84.  
  85.  
  86.